#include <iostream>
using namespace std;

/*
    static修饰成员变量      -->可以作为类的所有对象的"全局变量"
        必须在类的外面初始化赋值    int Circle::n = 0;
        static修饰的成员变量是该类所有对象共享的
        static修改的成员变量不占用类的大小
    static修饰成员函数       -->作为工具类使用，专门提供算法函数给别人使用，可以直接调用，不需要定义对象
        1.类名::函数名 可以直接调用  也可以用对象调用
        2.静态成员函数中只能调用静态成员变量
            普通的成员函数可以调用所有的成员变量
*/
class Circle
{
public:
    Circle(double r)
    {
        radius = r;
        n++;
    }
    void show() const
    {
        cout << "半径为：" << radius << "的圆的周长为：" << 2 * PI * radius << endl;
        cout << "数量是: " << n << endl;
    }
    void getRadius(double r)
    {
        this->radius = r;
        cout << radius << endl;
    }
private:
    double radius;
    double PI = 3.14;
    static int n;
};
int Circle::n = 0;

int main()
{
    Circle c1(5.0);
    c1.show();

    Circle c2(10.0);
    c2.show();



    return 0;
}